﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;


namespace MobilePulginBase
{
    /// <summary>
    /// 插件的基础接口
    /// </summary>
    public interface IPlugin : IDisposable
    {
        /// <summary>
        /// 当前插件版本
        /// </summary>
        /// <returns>插件版本号</returns>
        int Version { get;}
        /// <summary>
        /// 获取插件功能描述
        /// </summary>
        /// <returns>功能描述</returns>
        string Description { get; }
        /// <summary>
        /// 获取显示在首页九宫格中的文字信息
        /// </summary>
        /// <returns>获得插件显示在九宫格中的信息</returns>
        string Caption { get; }
        /// <summary>
        /// 加载顺序
        /// </summary>
        int Index { get; set; }
        /// <summary>
        /// 获取插件图标
        /// </summary>
        /// <returns></returns>
        Bitmap Icon { get; }
        /// <summary>
        /// 插件名称
        /// </summary>
        string Name { get; }
        /// <summary>
        /// 标明插件是否必须存在(1--是，0--否)
        /// </summary>
        int Required { get; }
        /// <summary>
        /// 该插件所属的父插件 空值表示为顶层插件
        /// </summary>
        string Parent { get; }

        /// <summary>
        /// 打开窗体
        /// </summary>
        void ShowUIForm(Form owner,Form parent);
        /// <summary>
        /// 需要传递的值
        /// </summary>
        /// <param name="val"></param>
        /// </summary>
        void ShowUIForm(Form owner,Form parent,object val);


    }
}
